// This example shows how to obtain information about OPC UA servers available on the network. // The result is flat, i.e. each discovery URL is returned in separate element, with possible repetition of the servers. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-CSharp . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. using System; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.Discovery; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples._EasyUAClient { partial class DiscoverNetworkServers { public static void Main1() { // Instantiate the client object. var client = new EasyUAClient(); // Obtain collection of application elements. UADiscoveryElementCollection discoveryElementCollection; try { discoveryElementCollection = client.DiscoverNetworkServers("opcua.demo-this.com"); } catch (UAException uaException) { Console.WriteLine($"*** Failure: {uaException.GetBaseException().Message}"); return; } // Display results. foreach (UADiscoveryElement discoveryElement in discoveryElementCollection) { Console.WriteLine(); Console.WriteLine($"Server name: {discoveryElement.ServerName}"); Console.WriteLine($"Discovery URI string: {discoveryElement.DiscoveryUriString}"); Console.WriteLine($"Server capabilities: {discoveryElement.ServerCapabilities}"); Console.WriteLine($"Application URI string: {discoveryElement.ApplicationUriString}"); Console.WriteLine($"Product URI string: {discoveryElement.ProductUriString}"); } } } }
# This example shows how to obtain information about OPC UA servers available on the network. # The result is flat, i.e. each discovery URL is returned in separate element, with possible repetition of the servers. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in PowerShell on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-PowerShell . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. #requires -Version 5.1 using namespace OpcLabs.EasyOpc.UA using namespace OpcLabs.EasyOpc.UA.Discovery using namespace OpcLabs.EasyOpc.UA.OperationModel # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUA.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUAComponents.dll" # Instantiate the client object. $client = New-Object EasyUAClient # Obtain collection of application elements. try { $discoveryElementCollection = [IEasyUAClientExtension]::DiscoverNetworkServers($client, "opcua.demo-this.com") } catch [UAException] { Write-Host "*** Failure: $($PSItem.Exception.GetBaseException().Message)" return } # Display results. foreach ($discoveryElement in $discoveryElementCollection) { Write-Host Write-Host "Server name: $($discoveryElement.ServerName)" Write-Host "Discovery URI string: $($discoveryElement.DiscoveryUriString)" Write-Host "Server capabilities: $($discoveryElement.ServerCapabilities)" Write-Host "Application URI string: $($discoveryElement.ApplicationUriString)" Write-Host "Product URI string: $($discoveryElement.ProductUriString)" }
' This example shows how to obtain information about OPC UA servers available on the network. ' The result is flat, i.e. each discovery URL is returned in separate element, with possible repetition of the servers. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . ' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET . ' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own ' a commercial license in order to use Online Forums, and we reply to every post. Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.Discovery Imports OpcLabs.EasyOpc.UA.OperationModel Namespace _EasyUAClient Partial Friend Class DiscoverNetworkServers Public Shared Sub Main1() ' Instantiate the client object Dim client = New EasyUAClient() ' Obtain collection of application elements Dim discoveryElementCollection As UADiscoveryElementCollection Try discoveryElementCollection = client.DiscoverNetworkServers("opcua.demo-this.com") Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Exit Sub End Try ' Display results For Each discoveryElement As UADiscoveryElement In discoveryElementCollection Console.WriteLine() Console.WriteLine("Server name: {0}", discoveryElement.ServerName) Console.WriteLine("Discovery URI string: {0}", discoveryElement.DiscoveryUriString) Console.WriteLine("Server capabilities: {0}", discoveryElement.ServerCapabilities) Console.WriteLine("Application URI string: {0}", discoveryElement.ApplicationUriString) Console.WriteLine("Product URI string: {0}", discoveryElement.ProductUriString) Next discoveryElement End Sub End Class End Namespace
// This example shows how to obtain information about OPC UA servers available on the network. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in Object Pascal (Delphi) on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-OP . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. class procedure DiscoverNetworkServers.Main; var Client: OpcLabs_EasyOpcUA_TLB._EasyUAClient; Count: Cardinal; Element: OleVariant; DiscoveryElement: _UADiscoveryElement; DiscoveryElementEnumerator: IEnumVariant; DiscoveryElements: _UADiscoveryElementCollection; begin // Instantiate the client object Client := CoEasyUAClient.Create; // Obtain collection of application elements try DiscoveryElements := Client.DiscoverNetworkServers(Unassigned, 'opcua.demo-this.com'); except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); Exit; end; end; // Display results DiscoveryElementEnumerator := DiscoveryElements.GetEnumerator; while (DiscoveryElementEnumerator.Next(1, Element, Count) = S_OK) do begin DiscoveryElement := IUnknown(Element) as _UADiscoveryElement; WriteLn; WriteLn('Server name: ', DiscoveryElement.ServerName); WriteLn('Discovery URI string: ', DiscoveryElement.DiscoveryUriString); WriteLn('Server capabilities: ', DiscoveryElement.ServerCapabilities.ToString); end; end;
// This example shows how to obtain information about OPC UA servers available on the network. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. #include "stdafx.h" // Includes "QuickOpc.h", and other commonly used files #include "DiscoverNetworkServers.h" namespace _EasyUAClient { void DiscoverNetworkServers::Main() { // Initialize the COM library CoInitializeEx(NULL, COINIT_MULTITHREADED); { // Instantiate the client object _EasyUAClientPtr ClientPtr(__uuidof(EasyUAClient)); _StringCollectionPtr ServerElementFilterPtr(__uuidof(StringCollection)); _variant_t vServerElementFilter(ServerElementFilterPtr.GetInterfacePtr()); // Obtain collection of application elements _UADiscoveryElementCollectionPtr DiscoveryElementsPtr = ClientPtr->DiscoverNetworkServers(vServerElementFilter, L"opcua.demo-this.com"); // Display results IEnumVARIANTPtr EnumDiscoveryElementPtr = DiscoveryElementsPtr->GetEnumerator(); _variant_t vDiscoveryElement; while (EnumDiscoveryElementPtr->Next(1, &vDiscoveryElement, NULL) == S_OK) { _UADiscoveryElementPtr DiscoveryElementPtr(vDiscoveryElement); _tprintf(_T("\n")); _tprintf(_T("Application type: %d\n"), DiscoveryElementPtr->ApplicationType); _tprintf(_T("Server name: %s\n"), (LPCTSTR)CW2CT(DiscoveryElementPtr->ServerName)); _tprintf(_T("Discovery URI string: %s\n"), (LPCTSTR)CW2CT(DiscoveryElementPtr->DiscoveryUriString)); _tprintf(_T("Server capabilities: ")); IEnumVARIANTPtr EnumServerCapabilityPtr = DiscoveryElementPtr->ServerCapabilities->GetEnumerator(); _variant_t vServerCapability = NULL; while (EnumServerCapabilityPtr->Next(1, &vServerCapability, NULL) == S_OK) _tprintf(_T("%s "), (LPCTSTR)CW2CT(_bstr_t(vServerCapability))); _tprintf(_T("\n")); vDiscoveryElement.Clear(); } } // Release all interface pointers BEFORE calling CoUninitialize() CoUninitialize(); } }
REM This example shows how to obtain information about OPC UA servers available on the network. REM REM Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . REM OPC client and subscriber examples in Visual Basic on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VB . REM Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own REM a commercial license in order to use Online Forums, and we reply to every post. Public Sub DiscoverNetworkServers_Main_Command_Click() OutputText = "" ' Instantiate the client object Dim Client As New EasyUAClient ' Obtain collection of application elements On Error Resume Next Dim DiscoveryElementCollection As UADiscoveryElementCollection Set DiscoveryElementCollection = Client.DiscoverNetworkServers(Nothing, "opcua.demo-this.com") If Err.Number <> 0 Then OutputText = OutputText & "*** Failure: " & Err.Source & ": " & Err.Description & vbCrLf Exit Sub End If On Error GoTo 0 ' Display results Dim DiscoveryElement As UADiscoveryElement: For Each DiscoveryElement In DiscoveryElementCollection OutputText = OutputText & vbCrLf OutputText = OutputText & "Server name: " & DiscoveryElement.ServerName & vbCrLf OutputText = OutputText & "Discovery URI string: " & DiscoveryElement.DiscoveryUriString & vbCrLf OutputText = OutputText & "Server capabilities: " & DiscoveryElement.serverCapabilities.ToString & vbCrLf Next End Sub
Rem This example shows how to obtain information about OPC UA servers available on the network. Rem Rem Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Rem OPC client and subscriber examples in VBScript on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBScript . Rem Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own Rem a commercial license in order to use Online Forums, and we reply to every post. Option Explicit ' Instantiate the client object Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.UA.EasyUAClient") ' Obtain collection of application elements On Error Resume Next Dim DiscoveryElementCollection: Set DiscoveryElementCollection = _ Client.DiscoverNetworkServers(Nothing, "opcua.demo-this.com") If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 ' Display results Dim DiscoveryElement: For Each DiscoveryElement In DiscoveryElementCollection WScript.Echo WScript.Echo "Server name: " & DiscoveryElement.ServerName WScript.Echo "Discovery URI string: " & DiscoveryElement.DiscoveryUriString Dim s: s = "" Dim serverCapability: For Each serverCapability In DiscoveryElement.ServerCapabilities s = s & serverCapability & " " Next WScript.Echo "Server capabilities: " & s Next
# This example shows how to obtain information about OPC UA servers available on the network. # The result is flat, i.e. each discovery URL is returned in separate element, with possible repetition of the servers. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.Discovery import * from OpcLabs.EasyOpc.UA.OperationModel import * # Instantiate the client object. client = EasyUAClient() # Obtain collection of application elements. try: discoveryElementCollection = IEasyUAClientExtension.DiscoverNetworkServers(client, 'opcua.demo-this.com') except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() # Display results. for discoveryElement in discoveryElementCollection: print() print('Server name: ', discoveryElement.ServerName, sep='') print('Discovery URI string: ', discoveryElement.DiscoveryUriString, sep='') print('Server capabilities: ', discoveryElement.ServerCapabilities, sep='') print('Application URI string: ', discoveryElement.ApplicationUriString, sep='') print('Product URI string: ', discoveryElement.ProductUriString, sep='') print() print('Finished.')
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Documentation Home, Send Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.